---
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
  annotations:
    controller-gen.kubebuilder.io/version: v0.14.0
  creationTimestamp: null
  name: ciliumenvoyconfigs.cilium.io
spec:
  group: cilium.io
  names:
    categories:
    - cilium
    kind: CiliumEnvoyConfig
    listKind: CiliumEnvoyConfigList
    plural: ciliumenvoyconfigs
    shortNames:
    - cec
    singular: ciliumenvoyconfig
  scope: Namespaced
  versions:
  - additionalPrinterColumns:
    - description: The age of the identity
      jsonPath: .metadata.creationTimestamp
      name: Age
      type: date
    name: v2
    schema:
      openAPIV3Schema:
        properties:
          apiVersion:
            description: 'APIVersion defines the versioned schema of this representation
              of an object. Servers should convert recognized schemas to the latest
              internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
            type: string
          kind:
            description: 'Kind is a string value representing the REST resource this
              object represents. Servers may infer this from the endpoint the client
              submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
            type: string
          metadata:
            type: object
          spec:
            properties:
              backendServices:
                description: BackendServices specifies Kubernetes services whose backends
                  are automatically synced to Envoy using EDS.  Traffic for these
                  services is not forwarded to an Envoy listener. This allows an Envoy
                  listener load balance traffic to these backends while normal Cilium
                  service load balancing takes care of balancing traffic for these
                  services at the same time.
                items:
                  properties:
                    name:
                      description: Name is the name of a destination Kubernetes service
                        that identifies traffic to be redirected.
                      type: string
                    namespace:
                      description: Namespace is the Kubernetes service namespace.
                        In CiliumEnvoyConfig namespace defaults to the namespace of
                        the CEC, In CiliumClusterwideEnvoyConfig namespace defaults
                        to "default".
                      type: string
                    number:
                      description: Port is the port number, which can be used for
                        filtering in case of underlying is exposing multiple port
                        numbers.
                      items:
                        type: string
                      type: array
                  required:
                  - name
                  type: object
                type: array
              nodeSelector:
                description: NodeSelector is a label selector that determines to which
                  nodes this configuration applies. If nil, then this config applies
                  to all nodes.
                properties:
                  matchExpressions:
                    description: matchExpressions is a list of label selector requirements.
                      The requirements are ANDed.
                    items:
                      description: A label selector requirement is a selector that
                        contains values, a key, and an operator that relates the key
                        and values.
                      properties:
                        key:
                          description: key is the label key that the selector applies
                            to.
                          type: string
                        operator:
                          description: operator represents a key's relationship to
                            a set of values. Valid operators are In, NotIn, Exists
                            and DoesNotExist.
                          enum:
                          - In
                          - NotIn
                          - Exists
                          - DoesNotExist
                          type: string
                        values:
                          description: values is an array of string values. If the
                            operator is In or NotIn, the values array must be non-empty.
                            If the operator is Exists or DoesNotExist, the values
                            array must be empty. This array is replaced during a strategic
                            merge patch.
                          items:
                            type: string
                          type: array
                      required:
                      - key
                      - operator
                      type: object
                    type: array
                  matchLabels:
                    additionalProperties:
                      description: MatchLabelsValue represents the value from the
                        MatchLabels {key,value} pair.
                      maxLength: 63
                      pattern: ^(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?$
                      type: string
                    description: matchLabels is a map of {key,value} pairs. A single
                      {key,value} in the matchLabels map is equivalent to an element
                      of matchExpressions, whose key field is "key", the operator
                      is "In", and the values array contains only "value". The requirements
                      are ANDed.
                    type: object
                type: object
              resources:
                description: 'Envoy xDS resources, a list of the following Envoy resource
                  types: type.googleapis.com/envoy.config.listener.v3.Listener, type.googleapis.com/envoy.config.route.v3.RouteConfiguration,
                  type.googleapis.com/envoy.config.cluster.v3.Cluster, type.googleapis.com/envoy.config.endpoint.v3.ClusterLoadAssignment,
                  and type.googleapis.com/envoy.extensions.transport_sockets.tls.v3.Secret.'
                items:
                  type: object
                  x-kubernetes-preserve-unknown-fields: true
                type: array
              services:
                description: Services specifies Kubernetes services for which traffic
                  is forwarded to an Envoy listener for L7 load balancing. Backends
                  of these services are automatically synced to Envoy usign EDS.
                items:
                  properties:
                    listener:
                      description: "Listener specifies the name of the Envoy listener
                        the service traffic is redirected to. The listener must be
                        specified in the Envoy 'resources' of the same CiliumEnvoyConfig.
                        \n If omitted, the first listener specified in 'resources'
                        is used."
                      type: string
                    name:
                      description: Name is the name of a destination Kubernetes service
                        that identifies traffic to be redirected.
                      type: string
                    namespace:
                      description: Namespace is the Kubernetes service namespace.
                        In CiliumEnvoyConfig namespace this is overridden to the namespace
                        of the CEC, In CiliumClusterwideEnvoyConfig namespace defaults
                        to "default".
                      type: string
                  required:
                  - name
                  type: object
                type: array
            type: object
        required:
        - metadata
        type: object
    served: true
    storage: true
    subresources: {}
status:
  acceptedNames:
    kind: ""
    plural: ""
  conditions: []
  storedVersions: []
